The Multipath Transmission Control Protocol (MPTCP) is an effort towards enabling the simultaneous use of several IP-addresses/interfaces by a modification of TCP that presents a regular TCP interface to applications, while in fact spreading data across several sub-flows. Benefits of this include better resource utilization, better throughput, and smoother reaction to failures.
The core idea of the MPTCP is to add an MPTCP layer between an application layer and a transport layer to support multi-path transmission. Traditional TCP data can be divided and distributed into several sub-flows each of which is transmitted along a different routing path.
The MPTCP is an end-to-end protocol between two hosts. The two hosts can establish or add sub-flows according to available IP addresses of the two hosts and available interfaces of the two hosts, and randomly allocate a routing path for each of the sub-flows. If routing paths are allocated randomly, the transmission quality of a routing path may be weak, which may affect transmission efficiency and result in network congestion.